package dryven.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Dependency Injection Indicator. Indicates from where primitive types should be injected.
 * <i>method</i> should be the exact name of a a method in <i>type</i> that has no arguments
 * and with it's return type the same as the parameter type.
 * <i>type</i> should be a type that can be injected without any further information (annotations).
 * @author bwindels
 *
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(value={ElementType.PARAMETER})
public @interface DII {
	Class<?> type();
	String method();
}
